package com.bjpowerrnode.javase.string;

/**
 * 关于java JDK中内置的一个类：java.lang.String
 *  1、String表示字符串类型：属于引用数据类型，不属于基本数据类型。
 *  2、在java中使用""括起来的都是String对象。
 *  3、java中规定""括起来的字符转是不可变的。
 *  4、在JDK当中双引号括起来的字符串，都是直接存储在“方法区”的“字符串常量池”当中的。
 *  为什么将字符串存储在“方法区”的“字符串常量池"中那，因为字符串在开发的时候太常用，为了
 *  执行效率将字符串存储在“方法区”的“字符串常量池"中.
 */
public class StringTest01 {
    public static void main(String[] args) {
        //这两行代码表示底层创建了3个字符串对象，都在字符串常量池当中
        String s1 = "abcdef";
        String s2 = "abcdef" + "xy";

        //分析：这是使用new的方式创建的字符串对象，这个代码中的“xy”是从哪里来到的
        //凡是双引号括起来的都在字符串常量池中右一份。
        //new对象的时候一定在堆内存当中开辟空间
        String s3 = new String("xy");
    }
}
